@大麻哈
3年前 提问
1个回答

sql怎么用代码创建数据库

007bug
3年前

下面以MySQL5.7.8为例:

一、使用SQL语句创建

create database stuDB  --stuDB是数据库的名称
on  primary  -- 默认就属于primary文件组,可省略
(
/*--数据文件的具体描述--*/
    name='stuDB_data',  -- 主数据文件的逻辑名称
    filename='D:\stuDB_data.mdf', -- 主数据文件的物理路径和名称
    size=5mb, --主数据文件的初始大小
    maxsize=100mb, -- 主数据文件增长的最大值
    filegrowth=15%--主数据文件的增长率
)
log on
(
/*--日志文件的具体描述,各参数含义同上--*/
    name='stuDB_log',
    filename='D:\stuDB_log.ldf',
    size=2mb,
    filegrowth=1mb
)
   
-----2.创建数据表
use StuDB   --使用某个数据库(在某个数据库下建表)
go 
if exists(select * from sysobjects where name='stuMarks')--查询数据库是否已存在此表
drop table stuMarks--如果存在该表则删除,不存在不执行此句
create table stuMarks  --stuMarks是表的名称
(
    ExamNo      int     identity(1,1) primary key,--列名    数据类型   约束
    stuNo       char(6) not null,--列名   数据类型   是否允许插入Null值
    writtenExam int     not null,
    LabExam     int     not null
)
go
     
-- 其中,列属性"identity(起始值,递增量)" 表示"ExamNo"列为自动编号, 也称为标识列alter table 表名
add constraint 约束名 约束类型 具体的约束说明
alter table 表名
drop constraint 约束名

二、java编写创建数据库和表的程序

import java.sql.*;  
  
public class Test  
{  
  public static void main(String[] args) throws Exception  
  {  
    Class.forName("com.mysql.jdbc.Driver");  
      
    //一开始必须填一个已经存在的数据库  
    String url = "jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8";   
    Connection conn = DriverManager.getConnection(url, "root", "123456");  
    Statement stat = conn.createStatement();  
      
    //创建数据库hello  
    stat.executeUpdate("create database hello");  
      
    //打开创建的数据库  
    stat.close();  
    conn.close();  
    url = "jdbc:mysql://localhost:3306/hello?useUnicode=true&characterEncoding=utf-8";  
    conn = DriverManager.getConnection(url, "root", "123456");  
    stat = conn.createStatement();  
      
    //创建表test  
    stat.executeUpdate("create table test(id int, name varchar(80))");  
      
    //添加数据  
    stat.executeUpdate("insert into test values(1, '张三')");  
    stat.executeUpdate("insert into test values(2, '李四')");  
      
    //查询数据  
    ResultSet result = stat.executeQuery("select * from test");  
    while (result.next())  
    {  
      System.out.println(result.getInt("id") + " " + result.getString("name"));  
    }  
      
    //关闭数据库  
    result.close();  
    stat.close();  
    conn.close();  
  }  
}

三、用php代码建立mysql数据库

$rs = mysql_select_db($dbname,$conn);

if(!$rs){
$rs = mysql_query("CREATE DATABASE `$dbname`; ",$conn);
if(!$rs){
$errstr = GetBackAlert("数据库 {$dbname} 不存在,也没权限创建新的数据库!");
echo $errstr;
exit();
}else{
$rs = mysql_select_db($dbname,$conn);
if(!$rs){
$errstr = GetBackAlert("你对数据库 {$dbname} 没权限!");
echo $errstr;
exit();
}else{
$ctStr = 'CREATE TABLE `wish` (
`id` int(11) NOT NULL auto_increment,
`pname` varchar(30) default NULL,
`pqq` varchar(10) default NULL,
`plocal` varchar(50) default NULL,
`pemail` varchar(30) default NULL,
`context` tinytext,
`addDate` datetime default NULL,
`biz1` varchar(250) default NULL,
`biz2` varchar(250) default NULL,
`biz3` varchar(250) default NULL,
`biz4` varchar(250) default NULL,
`biz5` varchar(250) default NULL,
`biz6` int(11) default NULL,
`biz7` int(11) default NULL,
`biz8` int(11) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;';
mysql_query($ctStr,$conn);

}
}